package com.bt.service.impl;
import com.bt.dto.YddLinkDTO;
import com.bt.dto.YddLinkPageQueryDTO;
import com.bt.mapper.YddLinkMapper;
import com.bt.result.PageResult;
import com.bt.service.YddLinkService;
import com.bt.vo.YddLinkPageQueryVO;
import com.bt.vo.YddLinkVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

/**
 * @Description TODO
 * @Author itheima
 * @Date 2023-05-02 11:40
 */
@Service
@Slf4j
public class YddLinkServiceImpl implements YddLinkService {
    @Autowired
    private YddLinkMapper yddLinkMapper;

    /**
     * 友情链接详情
     *
     * @param id
     * @return
     */
    @Override
    public YddLinkVO rowInfo(Integer id) {
        YddLinkVO yddLinkVO = yddLinkMapper.rowInfo(id);
        return yddLinkVO;
    }

    /**
     * 链接修改
     */
    @Override
    public void update(YddLinkDTO yddLinkDTO) {
        yddLinkMapper.update(yddLinkDTO);

    }

    /**
     * 链接删除
     *
     * @param id
     */
    @Override
    public void del(Integer id) {
        yddLinkMapper.del(id);

    }

    /**
     * 链接添加
     *
     * @param yddLinkDTO
     */
    @Override
    public void add(YddLinkDTO yddLinkDTO) {
        yddLinkMapper.add(yddLinkDTO);
    }

    /**
     * 分页链接列表
     *
     * @param yddLinkPageQueryDTO
     * @return
     */
    @Override
    public PageResult list(YddLinkPageQueryDTO yddLinkPageQueryDTO) {
        //查询文字类型或图片类型的总条数
        Integer count = yddLinkMapper.getCount(yddLinkPageQueryDTO.getType());
        //获取分页的起始索引
        Integer start = (yddLinkPageQueryDTO.getPage() - 1) * yddLinkPageQueryDTO.getLimit();
        //获取每页展示的数量
        Integer length = yddLinkPageQueryDTO.getLimit();
        //获取文字类型或图片类型的总页数
        Integer totalPages =0;
        if(length>0) {
            if (count % 10 == 0) {
                totalPages = count / length;
            } else {
                totalPages = (count / length) + 1;
            }
        }

        //获取当前页码
        Integer currentPage = yddLinkPageQueryDTO.getPage();

        //获取分页的类型
         String type =   yddLinkPageQueryDTO.getType();

        //获取当前页数据集合
        List<YddLinkPageQueryVO> yddLinkPageQueryVOList = yddLinkMapper.list(start,length,type);

        PageResult pageResult = PageResult.builder()
                .count(count)
                .totalPages(totalPages)
                .pageSize(length)
                .currentPage(currentPage)
                .data(yddLinkPageQueryVOList)
                .build();
        return pageResult;
    }
}
